package it.unibo.refolding.pico;


/**
 * A reflection proxy cannot be exported via jremoting.
 * 
 * 	NanoDriver FAKE = (NanoDriver) Proxy.newProxyInstance(NanoDriver.class.getClassLoader(),
			new Class[] {NanoDriver.class}, new InvocationHandler() {
				private final Logger logger = Logger.getLogger(this.getClass().getSimpleName());

				@Override
				public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
					logger.fine(String.format(Locale.ROOT, "method=%s args=%s", method, Arrays
							.toString(args)));
					return null;
				}
			});
 * @author daniel
 *
 */
public class FakeNanoDriver implements NanoDriver {

	public FakeNanoDriver(NanoDriverConfig config) {
	}
	
	@Override
	public void zScanStartM(double value) {
	}

	@Override
	public void reverseVelocityNmOrUmPerS(double value) {
	}

	@Override
	public void rampSizeM(double rampSizeM) {
	}

	@Override
	public void single() {
	}

	@Override
	public void surfaceDelay(double surfaceDelayS) {
	}

	@Override
	public void runScript() {
	}

	@Override
	public void startRampColumn1(double m) {
	}

	@Override
	public void endRampColumn1(double zScanStartM) {
	}

	@Override
	public void velocityColumn1(double velocityMPerS) {
	}

	@Override
	public void delayColumn1(double s) {
	}

	@Override
	public void deltaColumn2(double m) {
	}

	@Override
	public void deltaColumn3(double m) {
	}

	@Override
	public void loopCountColumn3(int count) {
	}

	@Override
	public void captureButton() {
	}

	@Override
	public void quitStripChart() {
	}

	@Override
	public void resetStripChart() {
	}

	@Override
	public void sleep(double timeS) {
	}

	@Override
	public void xOffsetM(double value) {
	}

	@Override
	public void continuous() {
	}

	@Override
	public void velocityColumn2(double velocityMPerS) {
	}

	@Override
	public void velocityColumn3(double velocityMPerS) {
	}

	@Override
	public void forceMode() {
	}

	@Override
	public void scriptMode() {
	}

	@Override
	public void startStripChart() {
	}

	@Override
	public void stop() {
	}

	@Override
	public void scanRate(double scanRate) {
	}

	@Override
	public void numberOfSamples(int numberOfSamples) {
	}

	@Override
	public void ping() {
	}

	@Override
	public void captureContinuous() {
	}

	@Override
	public void abortCapture() {
	}

	/**
	 * Returns {@code true} so that FetchRefoldBreak can be used with the fake driver.
	 */
  @Override
  public boolean startOrPauseStripChartPixelIsRed() {
    return true;
  }

  @Override
  public void setupSingleScript(
    double startRampColumn1, double endRampColumn1, double velocityColumn1, double delayColumn1,
    double velocityColumn2, double deltaColumn2, double velocityColumn3, double deltaColumn3,
    int loopCountColumn3) {
  }

  @Override
  public void captureButtonResetStripChart() {
  }

  @Override
  public void startStripChartQuitStripChartForceMode() {
  }

  @Override
  public void zScanStartMScriptModeStartStripChart(double zScanStartM) {
  }

  @Override
  public void forceModeXOffsetScriptMode(double xOffsetM) {
  }

  @Override
  public void waitWhileStartOrPauseIsNotRed() {
  }
}
